package com.itheima.controller;

import com.itheima.common.Result;
import com.itheima.common.utils.AliOSSUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.UUID;

/**
 * 文件上传控制器
 *
 * @author liudo
 * @version 1.0
 * @project tlias-backend
 * @date 2023/9/10 10:35:04
 */
@RestController
@RequestMapping
@Slf4j
public class FileController {

    @Autowired
    private AliOSSUtils aliOSSUtils;

    /**
     * 文件上传
     *
     * @param image 形象
     * @return {@link Result}<{@link String}>
     */
    @PostMapping("/upload")
    public Result<String> upload(MultipartFile image) {
        try {
            String url = aliOSSUtils.upload(image);
            return Result.success(url);
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }

    /**
     * 上传
     *
     * @param image 文件
     * @return {@link Result}<{@link String}>
     */
    // @PostMapping("/upload")
    // public Result<String> upload(MultipartFile image) {
    //     // todo 存储我们的文件到其他文件夹，保存到哪(Nginx html目录下)？怎么保存(transferTo)?
    //     try {
    //         // todo 对名字进行处理 随机数 + 时间戳 + 机器码 -- UUID
    //         // 刘.德.华.png --> dfusukhfkjdshkjf.png
    //         // 生成UUID - 本地的服务器存储
    //         String uuid = UUID.randomUUID().toString();
    //         // 获取原始文件名称
    //         String originalFilename = image.getOriginalFilename();
    //         // 获取原始文件名称的后缀名
    //         String suffix = originalFilename.substring(originalFilename.lastIndexOf("."));
    //         // 拼接新的文件名称
    //         String newName = uuid + suffix;
    //         File file1 = new File("E:\\project\\_61\\tlias\\nginx-tlias\\html\\" + newName);
    //         image.transferTo(file1);
    //         log.info("接受到文件:{}", image);
    //         return Result.success("http://localhost:90/" + newName);
    //     } catch (IOException e) {
    //         throw new RuntimeException(e);
    //     }
    // }
}
